package com.liyujie.networkrequest.remotedata.systemapi;


import com.liyujie.networkrequest.mobile.ResultEntity;
import com.liyujie.networkrequest.mobile.entity.SignatureDtoEntity;

import java.util.Map;

import io.reactivex.Observable;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.Header;
import retrofit2.http.POST;

public interface SystemApiService {

    /**
     * 验证接口
     * 基本参数：
     * type-验证类型：Integer 0/1/2 密码/刷卡/扫码
     * value-验证值：String  密码或者卡号或者扫码结果（二维码的内容我们用json形式）
     * sendTime-发出时间：DateTime 调接口的时间（预留字段，可能会用于判断是否延迟过久）
     *
     * 返回值：
     * taskId-任务id：String 开门任务唯一标识
     * result-是否能开门：bool true能开 false不能开
     * boxNum-箱柜号：String 可能为空
     */
    @POST("cab-form/signature")
    Observable<SignatureDtoEntity> signature(@Body Map<String,Object> loginMessage);


    /**
     * 开门结果回调接口
     * 基本参数：
     * taskId-任务id：String 开门任务唯一标识
     * result-执行结果：bool true成功  false失败
     * reason-失败原因：String 可为空
     *
     * 返回值：
     * result-处理结果：String "succ" 代表成功收到
     * @param loginMessage
     * @return
     */
    @POST("cab-form/openBox")
    Observable<ResponseBody> openBox(@Body Map<String,Object> loginMessage);


    /**
     * 开门结果回调接口
     * 基本参数：
     * taskId-任务id：String 开门任务唯一标识
     * result-执行结果：bool true成功  false失败
     * reason-失败原因：String 可为空
     *
     * 返回值：
     * result-处理结果：String "succ" 代表成功收到
     * @param loginMessage
     * @return
     */
    @POST("cab-form/closeBox")
    Observable<ResponseBody> closeBox(@Body Map<String,Object> loginMessage);


}

